Many computing applications require selection of the K greatest (or least) numbers from a list of length N. One known method to achieve this result is to completely sort the element of the N length list and then select the K greatest (or least) as indicated by a sorted list. This process requires much data manipulation in the initial sort. It can be clearly seen that much of this sorting is wasted because for elements falling outside the K greatest (or least) elements the sorting does not contribute to the selection.